// 高阶函数-函数作为返回值

// function makeFn () {
//   let msg = 'hello world'
//   return function () {
//     console.log(msg)
//   }
// }

// const fn = makeFn()
// fn()
// makeFn()()

// once函数
function once (fn) {
  let flag = true
  return function () {
    if (flag) {
      flag = false
      return fn.apply(this, arguments)
    }
  }
}

const r = once(function (arg) {
  console.log(arg)
})
r(22)
r(22)
r(22)